#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
#define OK 1
#define ERROR 0
#define STACKSIZE 100

typedef struct
{
    int *base;
    int *top;
    int stacksize;
}SqStack;

int InitStack(SqStack &S)
{
    S.base=new int [STACKSIZE];
    S.top=S.base;
    S.stacksize=STACKSIZE;
    return OK;
}

int Push(SqStack &S,int e)
{
    if(S.top-S.base==S.stacksize)
        return ERROR;
    *S.top++=e;
    return OK;
}


int main()
{
    int n,m;
    SqStack S;
    int x,e;
    scanf("%d",&x);
    if(x==0)
    {
        printf("0");
        return 0;
    }

    InitStack(S);
   m=abs(x);
    while(m)
    {
        Push(S,m%8);
       m/=8;
    }
    int *p=S.top;
   if(x<0)
    printf("-");
    while(p!=S.base)
    {
        p--;
        cout<<*p;
    }
    return 0;
}
